home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / Other Langs / MacPerl ƒ / Perl Source ƒ / Perl / macscripts / DirMenu < prev    next >
Text File  |  1993-10-23  |  2KB  |  68 lines

  1. # DirMenu - Set up the MPW directory menu they way I want it
  2. #        All directories of the form ≈:Development:≈ are added
  3. #        Directories of the form ≈:Development:Others:≈ are appended hierarchically
  4. #          Hierarchical menus need the DemoteMenu and SetSubMenu tools available
  5. #        on the Developer's CD series and the commands are not executed, but written
  6. #        to a file {MPW}MPW.HierStuff. 
  7.  
  8. Set Echo 0
  9. Set Exit 0
  10. DeleteMenu Directory ≥ Dev:Null
  11. AddMenu Directory 'Show Directory' ∂
  12.     '(Echo "The default directory is ∂n"; Directory) | Alert -s'
  13. AddMenu directory 'Set Directory…' ∂
  14.     'set __OldExit__ "{exit}"; ∂
  15.     unset exit; ∂
  16.     Set __Directory__ "`GetFileName -d;  set __tmpStatus__ "{status}"`"; ∂
  17.     if "{__tmpStatus__}" == 0; ∂
  18.         SetDirectory {__Directory__} > "{ShellDirectory}"MPW.Errors ≥ Dev:StdOut; ∂
  19.         if "{status}" != 0; ∂
  20.             Alert < "{ShellDirectory}"MPW.Errors; ∂
  21.         end; ∂
  22.     end; ∂
  23.     set exit "{__OldExit__}"; ∂
  24.     unset __Directory__ __OldExit__ __tmpStatus__'
  25. AddMenu Directory '(-' ''
  26. Set Exit 1
  27. Perl -Sx "{0}" ≈:>"{MPW}TmpMDEFS" && Execute "{MPW}TmpMDEFS" && Delete -y "{MPW}TmpMDEFS"
  28. Exit 0
  29. #
  30. # Now for the Perl part
  31. #!/usr/local/bin/perl
  32.  
  33. $MPW     =    $ENV{'MPW'};
  34. $hi    =    $MPW . "MPW.HierStuff";
  35. open(HIER, ">>$hi") || die "Could not open $hi";
  36.  
  37. foreach $vol (@ARGV) {
  38.     $dev = $vol . "Development";
  39.     next unless -d $dev;
  40.     
  41.     opendir(DEV, $dev) || die "Couldn't open $dev";
  42.     while ($dir = readdir(DEV)) {
  43.         next unless (-d "$dev:$dir");
  44.         
  45.         print <<END;
  46. AddMenu Directory \'$vol$dir\' ∂
  47. \'Directory \"$dev:$dir\" > \"{ShellDirectory}\"MPW.Errors ≥ Dev:StdOut ∂
  48.           || Alert < \"{ShellDirectory}\"MPW.Errors\'
  49. END
  50.     
  51.         next unless $dir eq "Others";
  52.  
  53.         opendir(OTH, "$dev:$dir") || die "Couldn't open $dev:$dir";
  54.         while ($od = readdir(OTH)) {
  55.             print <<END;
  56. AddMenu \"$vol$dir\" \'$od\' ∂
  57. \'Directory \"$dev:$dir:$od\" > \"{ShellDirectory}\"MPW.Errors ≥ Dev:StdOut ∂
  58.              || Alert < \"{ShellDirectory}\"MPW.Errors\'
  59. END
  60.         }
  61.         
  62.         print HIER <<END;
  63. DemoteMenu \"$vol$dir\"
  64. SetSubMenu Directory \"$vol$dir\" \"$vol$dir\"
  65. END
  66.     }
  67. }
  68.